package com.nageoffer.shortlink.admin.dao.entity;

/**
 * 用户上下文，存储当前登录用户信息（基于ThreadLocal）
 */
public class UserContext {
    // ThreadLocal 确保每个线程的用户信息隔离
    private static final ThreadLocal<UserDO> CURRENT_USER = new ThreadLocal<>();

    // 设置当前用户
    public static void setUser(UserDO user) {
        CURRENT_USER.set(user);
    }

    // 获取当前用户（未登录时返回null）
    public static UserDO getCurrentUser() {
        return CURRENT_USER.get();
    }

    // 清理当前线程的用户信息（必须调用，防止内存泄漏）
    public static void clear() {
        CURRENT_USER.remove();
    }
}